Raspberry Pi 4 Model BでUbuntu 20.04を動かしWI-U2-433DHPをプロミスキャスモードおよびモニターモードで使う
作業環境
Windows10
用意するもの
Raspberry Pi 4 Model B
SDカード
USB-ACアダプタ
USB-Cケーブル(電源用)
モニター
HDMIケーブル
キーボード(英字配列キーボードだと楽)
WI-U2-433DHP
基本的なセットアップ
からUbuntu 20.04をダウンロード
からbalenaEtcherをダウンロード
balenaEtcherを使って、適当なSDカードにUbuntu 20.04を書き込む
RPIにSDカードを差し込んで起動する
初期ユーザーubuntu:ubuntuでログインしてパスワードを適当に変更する
この時点では日本語キーボードレイアウトになっていないのでパスワードに記号は使わないほうがいい
日本語キーボードレイアウトに対応する
sudo dpkg-reconfigure keyboard-configuration
Generic 105-key PC (intl.) → Japanese → Japanese → The default for the keyboard layout → No compose key → Yes
Wi-Fiを設定する(有線LANが使えるなら不要)
sudo vim /etc/netplan/50-cloud-init.yaml
以下のように編集する
code:50-cloud-init.yaml
network:
ethernets:
eth0:
dhcp4: true
optional: true
wifis:
wlan0:
access-points:
access-point-name:
password: password
dhcp4: true
version: 2
sudo reboot
sudo apt update
sudo apt upgrade
本題
WI-U2-433DHPのドライバをビルドする
sudo apt install dkms
git clone https://github.com/aircrack-ng/rtl8812au
cd rtl8812au
sudo ./dkms-install.sh
sudo reboot
WI-U2-433DHPの動作確認をする
ip a
code:text
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
link/ether dc:a6:32:70:95:4a brd ff:ff:ff:ff:ff:ff
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether dc:a6:32:70:95:4b brd ff:ff:ff:ff:ff:ff
inet 192.168.0.119/24 brd 192.168.0.255 scope global dynamic wlan0
valid_lft 7198sec preferred_lft 7198sec
4: wlan1: <NO-CARRIER,BROADCAST,MULTICAST,UP,LOWER_UP> mtu 2312 qdisc mq state DORMANT group default qlen 1000
link/ether 18:c2:bf:b1:aa:5b brd ff:ff:ff:ff:ff:ff
wlan1として認識はされているがどこのアクセスポイントにも繋がっていない(設定していないから当然)
WI-U2-433DHPの設定をする
wlan0はSSH接続用に、wlan1はその他の用途に使っていく
sudo vim /etc/netplan/50-cloud-init.yaml
以下のように編集する
code:50-cloud-init.yaml
network:
ethernets:
eth0:
dhcp4: true
optional: true
wifis:
wlan0:
access-points:
access-point-name:
password: password
dhcp4: true
wlan1:
access-points:
access-point-name:
password: password
dhcp4: true
version: 2
sudo reboot
sudo ip link set wlan1 promisc on
ip a show wlan1
code:text
4: wlan1: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 2312 qdisc mq state UP group default qlen 1000
link/ether 18:c2:bf:b1:aa:5b brd ff:ff:ff:ff:ff:ff
inet 192.168.0.139/24 brd 192.168.0.255 scope global dynamic wlan1
valid_lft 6985sec preferred_lft 6985sec
<> のなかに、PROMISCという文字が増えているのがわかるだろうか
LAN内を流れているパケットを収集することができる
sudo iw wlan1 set monitor control
ip a show wlan1
code:text
4: wlan1: <BROADCAST,ALLMULTI,PROMISC,NOTRAILERS,UP,LOWER_UP> mtu 2312 qdisc mq state UP group default qlen 1000
link/ieee802.11/radiotap 18:c2:bf:b1:aa:5b brd ff:ff:ff:ff:ff:ff
<> のなかに、ALLMULTIやNOTRAILERSという文字が増えている
モニターモードになると、Wi-Fi APとの接続は切断される
周辺のWi-Fiデータを集めることができる